#include "jugador.h"
#include <stdio.h>
#include <iostream>
#include"parsing.h"

#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

#include <sys/ipc.h>
#include <sys/shm.h>
#include "shmz.h"





void hijo(void);
void padre(void);

pid_t pid;

using namespace std;

int main(){

    /*
    Jugador play[11];
    for(int i=0; i<10; i++){
        play[i].conectar(6000,"127.0.0.1");
        play[i].setposicion(-2*i-3, 2*i);
        play[i].mover();

    }
    play[10].conectar(6000,"127.0.0.1");
    play[10].setposicion(-0.7, 0);
    play[10].mover();
    while(1){
        int a;
        cin>>a;
        if(a==1){
            play[10].correr(90);
        }
        else{
            play[10].chutar(90,100);
        }
    }
*/


    int shmid;
    memo *zona;
    // Creación de la zona de memoria compartida
    if((shmid = shmget(CLAVE_SHM, sizeof(memo), IPC_CREAT|0666)) == -1){

        cout<<"shmget";
        exit(EXIT_FAILURE);
    }
    // Obtención del puntero a la estructura de datos compartida
    zona = (memo *)shmat(shmid,0,0);

    Jugador Play1;
    Play1.conectar(6000,"127.0.0.1");
    Play1.setposicion(-10,0);
    Play1.mover();


    switch(pid = fork())
    {
    case (pid_t) -1:
        perror("fork");
        exit(EXIT_FAILURE);

    case (pid_t) 0: //hijo


        while(zona->arbit!=12){
        }



        //    Play1.chutar(90,0);
       // Play1.correr(90);


          while(1){
          // if(a==1){

            Play1.correr(90);

               // Play1.avanzarbalon();

            usleep(100000);
          }

           // Play1.chutar(90,100);



        while(1){
        }
        break;

    default: //padre

        Parsing pars;
        while(1){
                if(pars.getMensajeArbitro(Play1.recibir())==12){
                    zona->arbit=12;
        }
                    //Play1.getbalon();
        }
        break;
    }
    shmctl(shmid, IPC_RMID,0);
}



